import sys
import os

# 计算代码行数（排除注释行）
def 计算代码行数(file):
    code_line_count = 0
    with open(file, 'r', encoding='utf-8') as f:
        for line in f:
            stripped_line = line.strip()
            # 只计算非空且不以注释标记开头的行
            if stripped_line and not stripped_line.startswith('#'):
                code_line_count += 1
    return code_line_count

# 计算空行数
def 计算空行数(file):
    with open(file, 'r', encoding='utf-8') as f:
        return len([line for line in f if not line.strip()])

# 计算注释行数
def 计算注释行数(file):
    with open(file, 'r', encoding='utf-8') as f:
        return len([line for line in f if line.strip().startswith('#')])

# 显示帮助信息
def show_help():
    print("用法:")
    print("  v0.3.exe -d <file>  : 代码行数 📜")
    print("  v0.3.exe -e <file>  : 空行数 ⬜")
    print("  v0.3.exe -n <file>  : 注释行数 🗒️")

def main():
    if len(sys.argv) != 3:
        show_help()
        return

    option = sys.argv[1]
    file = sys.argv[2]

    # 检查文件是否存在
    if not os.path.exists(file):
        print(f"文件不存在")
        return

    if option == '-digital':
        print("代码行数 📜:", 计算代码行数(file))
    elif option == '-empty':
        print("空行数 ⬜:", 计算空行数(file))
    elif option == '-note':
        print("注释行数 🗒️:", 计算注释行数(file))
    else:
        show_help()

if __name__ == '__main__':
    main()